package com.fg.cloud.manager.service.product;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.construction.CategoryTree;
import com.fg.cloud.manager.entry.product.ProductCategoryEntity;
import com.fg.cloud.manager.service.BaseService;

/**
 * @author liushengchao
 * @Description: 商品分类Interface 
 * @date 2017年6月20日上午11:48:10
 *
 */
public interface ProductCategoryService extends BaseService{
	
	/**
	 * @Description: 通过父分类ID查询子分类信息 
	 * @param parentId 
	 * @return void
	 * @author liushengchao
	 * @date 2017年6月20日下午3:34:04
	 * @throws 
	 *
	 */
	public List<ProductCategoryEntity> selectByParentId(@Param("parentId")Long parentId);
	
	/**
	 * @Description: 级联删除商品分类 
	 * @param parentId 商品分类父节点ID
	 * @return int
	 * @author liushengchao
	 * @date 2017年6月21日下午2:57:22
	 * @throws 
	 *
	 */
	public int deleteByCategoryNumber(Map<String, Object> condition);

	/**
	 * Description:树形结构封装
	 * @param facid
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月9日下午2:43:38
	 */
	public CategoryTree selectByFacId(Long facid);

	/**
	 * Description:查询前三层数据并组成树形结构
	 * @param req
	 * @param resp
	 * @param facid
	 * @author 陈银龙
	 * @date 2017年8月9日下午2:41:33
	 */
	public List<CategoryTree> selectThreeByFacId(Map<String, Object> usmap);

	/**
	 * 
	 * Description:删除操作
	 * @param condition
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月10日下午2:10:36
	 */
	public int delete(Map<String, Object> condition);

	/**
	 * 
	 * Description:名称校验
	 * @param categoryEntity
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月11日下午5:13:03
	 */
	public int findnum(ProductCategoryEntity categoryEntity);

	/**
	 * 
	 * Description:经销商树查询
	 * @param usmap
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月22日下午2:41:03
	 */
	public List<CategoryTree> findAllCategory(Map<String, Object> usmap);

	/**
	 * 分类修改
	 * */
	public int updates(ProductCategoryEntity categoryEntity);
		
	/**
	 * Description:通过厂商ID和分类名称查询分类信息
	 * @param categoryName 分类名称
	 * @param facId 厂商ID
	 * @return ProductCategoryEntity 分类信息
	 * @author liushengchao
	 * @date  2017年9月27日上午10:40:41
	 */
	public ProductCategoryEntity selectCategoryByName(@Param("categoryName")String categoryName,
			@Param("facId")Long facId); 
}
